package com.basic.hellorabbit.util;

import com.basic.hellorabbit.dto.UsersDTO;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

/**
* @Description:    使用javaFaker创建数据，并使用Java8新特性 利用stream流和Lambda表达式对List集合进行简单处理
* @Author:         Joe
* @CreateDate:     2020/5/11 15:24
*/
@Slf4j
public class JavaFakerTest {
    public static void main(String[] args) {
        //创建数据
        List<UsersDTO> usersDTOS = JavaFakerWay.getList();

        System.out.println("---------------------------------------------------------------------");
        log.info("usersDTOS.size{}:"+usersDTOS.size());
        System.out.println("---------------------------------------------------------------------");
        //1.将原始数据age大于20岁用户放入filter
        //1.1 for循环过滤
        //List<UsersDTO> filter = JavaFakerWay.getFor(usersDTOS);

        //1.2 Lambda表达式：forEach()进行遍历集合过滤
        //List<UsersDTO> filter = JavaFakerWay.getForEach(usersDTOS);

        //1.3
        List<UsersDTO> filter = JavaFakerWay.getfilter(usersDTOS);

        log.info("filter.size{}:"+filter.size());

        //2.将过滤出来数据按年龄排序
        //2.1 Lambda表达式排序
        //List<UsersDTO> filterSort = JavaFakerWay.getSort(filter);

        //2.2 stream()流排序
        List<UsersDTO> filterSort = JavaFakerWay.getsortedList(filter);
        System.out.println(filterSort);

    }

}
